// Name:                     Panel
//
// Description:              Define style for panel
//
// Component:                `.am-panel`
//
// Sub-objects:              `.am-thumbnail-caption`
//
// Modifiers:                ``
//
// =============================================================================
// Panel mixin
// =============================================================================
.panel-variant(@border;
@hd-text-color;
@hd-bg-color;
@hd-border) {
    border-color: @border;
    &>.@{ns}panel-hd {
        color: @hd-text-color;
        background-color: @hd-bg-color;
        border-color: @hd-border;
        +.@{ns}panel-collapse>.@{ns}panel-bd {
            border-top-color: @border;
        }
    }
    &>.@{ns}panel-footer {
        +.@{ns}panel-collapse>.@{ns}panel-bd {
            border-bottom-color: @border;
        }
    }
}


/* ==========================================================================
   Component: Panel
 ============================================================================ */

.@{ns}panel {
    margin-bottom: 20px;
    background-color: @panel-bg;
    border: 1px solid transparent;
    border-radius: @panel-border-radius;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
    .hook-panel;
    transition: height .2s ease-in;
}


/* Panel header */

.@{ns}panel-hd {
    padding: @panel-hd-padding;
    border-bottom: 1px solid transparent;
    .border-top-radius(@panel-border-radius);
    .hook-panel-hd;
}


/* Panel content */

.@{ns}panel-bd {
    padding: @panel-bd-padding;
    .hook-panel-bd;
}

// Panel hds(h1 - h6)
.@{ns}panel-title {
    margin: 0;
    font-size: 100%;
    color: inherit;
    >a {
        color: inherit;
    }
}


/* Panel footer */

.@{ns}panel-footer {
    padding: @panel-footer-padding;
    background-color: @panel-footer-bg;
    border-top: 1px solid @panel-inner-border;
    .border-bottom-radius(@panel-border-radius);
    .hook-panel-footer;
}

// Modifiers
// =============================================================================
.@{ns}panel-default {
    .panel-variant(@panel-default-bd;
    @panel-default-text;
    @panel-default-hd-bg;
    @panel-default-bd);
    .hook-panel-default;
}

.@{ns}panel-primary {
    .panel-variant(@panel-primary-bd;
    @panel-primary-text;
    @panel-primary-hd-bg;
    @panel-primary-bd);
    .hook-panel-primary;
}

.@{ns}panel-secondary {
    .panel-variant(@panel-secondary-bd;
    @panel-secondary-text;
    @panel-secondary-hd-bg;
    @panel-secondary-bd);
    .hook-panel-secondary;
}

.@{ns}panel-success {
    .panel-variant(@panel-success-bd;
    @panel-success-text;
    @panel-success-hd-bg;
    @panel-success-bd);
    .hook-panel-success;
}

.@{ns}panel-warning {
    .panel-variant(@panel-warning-bd;
    @panel-warning-text;
    @panel-warning-hd-bg;
    @panel-warning-bd);
    .hook-panel-warning;
}

.@{ns}panel-danger {
    .panel-variant(@panel-danger-bd;
    @panel-danger-text;
    @panel-danger-hd-bg;
    @panel-danger-bd);
    .hook-panel-danger;
}

// Table in panel
// A non-bordered `.@{ns}table` in a panel
// =============================================================================
.@{ns}panel {
    >.@{ns}table {
        margin-bottom: 0;
    }
    // Border top radius for first one
    >.@{ns}table:first-child {
        .border-top-radius(@panel-border-radius);
        >thead:first-child, >tbody:first-child {
            >tr:first-child {
                td:first-child, th:first-child {
                    border-top-left-radius: (@panel-border-radius);
                }
                td:last-child, th:last-child {
                    border-top-right-radius: (@panel-border-radius);
                }
            }
        }
    }
    // Border bottom radius for last one
    >.@{ns}table:last-child {
        .border-bottom-radius(@panel-border-radius);
        >tbody:last-child, >tfoot:last-child {
            >tr:last-child {
                td:first-child, th:first-child {
                    border-bottom-left-radius: (@panel-border-radius);
                }
                td:last-child, th:last-child {
                    border-bottom-right-radius: (@panel-border-radius);
                }
            }
        }
    }
    >.@{ns}panel-bd+.@{ns}table {
        border-top: 1px solid @table-border-color;
    }
    >.@{ns}table>tbody:first-child>tr:first-child th, >.@{ns}table>tbody:first-child>tr:first-child td {
        border-top: 0;
    }
    >.@{ns}table-bd {
        border: 0;
        >thead, >tbody, >tfoot {
            >tr {
                >th:first-child, >td:first-child {
                    border-left: 0;
                }
                >th:last-child, >td:last-child {
                    border-right: 0;
                }
            }
        }
        >thead, >tbody {
            >tr:first-child {
                >td, >th {
                    border-bottom: 0;
                }
            }
        }
        >tbody, >tfoot {
            >tr:last-child {
                >td, >th {
                    border-bottom: 0;
                }
            }
        }
    }
}


/* Wrap list */

.@{ns}panel {
    >.@{ns}list {
        margin: 0;
        >li>a {
            padding-left: 1rem;
            padding-right: 1rem;
        }
    }
    >.@{ns}list-static li {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}


/* Panel group */

.@{ns}panel-group {
    margin-bottom: @line-height-computed;
    .@{ns}panel {
        margin-bottom: 0;
        border-radius: @panel-border-radius;
        +.@{ns}panel {
            margin-top: 6px;
        }
    }
    .@{ns}panel-hd {
        border-bottom: 0;
        +.@{ns}panel-collapse .@{ns}panel-bd {
            border-top: 1px solid @panel-inner-border;
        }
    }
    .@{ns}panel-footer {
        border-top: 0;
        +.@{ns}panel-collapse .@{ns}panel-bd {
            border-bottom: 1px solid @panel-inner-border;
        }
    }
    .hook-panel-group;
}

// Hooks
// =============================================================================
.hook-panel() {}

.hook-panel-hd() {}

.hook-panel-bd() {}

.hook-panel-footer() {}

.hook-panel-group() {}

.hook-panel-default() {}

.hook-panel-primary() {}

.hook-panel-secondary() {}

.hook-panel-success() {}

.hook-panel-warning() {}

.hook-panel-danger() {}
